The disclosure generally relates to the field of data processing, and more particularly to generic control systems or specific applications.
Generally, a distributed application is an application that includes software components that are distributed across multiple networked host machines which may be physical machines or virtual machines. The distributed application presents a single interface to a client for requesting a transaction to be performed. Performing the transaction includes performing multiple operations or tasks, or “end-to-end” tasks of the transaction. Each of the distributed software components handles a different subset of those tasks. This application architecture allows for a more flexible and scalable application compared with a monolithic application.
With the rise of cloud computing and mobile devices, large-scale distributed applications with a variety of components including web services and/or microservices have become more common. Various distributed tracing tools have been developed to perform root cause analysis and monitoring of large-scale distributed applications. A distributed tracing tool traces the execution path of a transaction across the software components of a distributed application. As the software components are executed (e.g., remote procedure calls, remote invocation calls, application programming interface (API) function invocations, etc.), identification of the component is recorded and the sequence of calls/invocations are correlated to present the execution path.